    #include <iostream>
    #include <stdlib.h>
    #include "MDense.h"
    #include "MCreuse.h"
    #include "MCSR.h"
    #include "MEI.h"
    #include "MBND.h"
    using namespace std;
    
    int main(int argc, char* argv[])
{    
	//on precisera la taille des matrice en ligne de commande
    int dim1=atoi(argv[1]);
    int dim2=atoi(argv[2]);
     
    vector <int> v(dim1);
    vector <int> u(dim2);
    for(int i=0; i<dim2; i++)
    {
		u[i]=i;
		//cout<<"u["<<i<<"]="<<u[i]<<endl;
	}
    //declaration des matrices
    MDense <int> A(dim1,dim2);
    MCreuse <int> B(dim1);
    MCSR <int> C(dim1);
    MEI <int> D(dim1);
    MBND <int> E(dim1,0,0);//matrice unite
    
    
    A.GEMV(u,v,argv[3]);
    //matrice creuse
    //cout<<"matrice d'indices"<<endl;
    //B.printIndices();
    //cout<<"matrice de valeurs non nul"<<endl;  
    //B.printValues(); 
    B.SPMV(u,v);
	//cout<<" "<<endl;
	//cout<<"matrice"<<endl;
    //A.printMDense();
    C.SPMV(u,v);
    //cout<<"matrice IA :"<<endl;
    //C.printIA();
	//cout<<"matrice JA :"<<endl;
	//C.printJA();
	//cout<<"Values :"<<endl;
	//C.printValues();
	//
	
    //cout<<"matrice AA :"<<endl;
    //D.printAA();
	//cout<<"matrice JA :"<<endl;
	//D.printJA();
	D.SPMV(u,v,dim1-1);
	//D.AjoutElements(2,1,3);
	//cout<<"maitenant matrice AA :"<<endl;
    //D.printAA();
	//cout<<"maintenant matrice JA :"<<endl;
	//D.printJA();
	
	E.SPMV(u,v);
	
	
}

